home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / gfx / show / svoUtah22.lha / svoUtahRLE / source / SV_InfoSubs.c < prev    next >
C/C++ Source or Header  |  1995-04-14  |  3KB  |  118 lines

  1.  
  2.  /* SV_InfoSubs.c
  3.     - Functions for UtahRLE-Support -
  4.     (c) 1990-95 by Andreas R. Kleinert
  5.     Last changes : 14.04.1995
  6.  */
  7.  
  8. #include "svobject.h"
  9.  
  10.  
  11. ULONG __saveds __asm SVO_FileInfoRequest( register __a1 struct SVObjectHandle *SVObjectHandle_a1, register __a2 struct Window *window, register __a3 ULONG future);
  12. ULONG __saveds __asm SVO_CheckFileType(register __a1 BPTR handle, register __a2 UBYTE *filename, register __a3 APTR future);
  13.  
  14.  
  15. void __saveds __stdargs SVLI_SPrintf(APTR buffer, char *formatstring, ...);
  16.  
  17.  
  18. /* *************************************************** */
  19. /* *                                                 * */
  20. /* * SVO_FileInfoRequest : Display File Information  * */
  21. /* *                                                 * */
  22. /* *************************************************** */
  23.  
  24. ULONG __saveds __asm SVO_FileInfoRequest( register __a1 struct SVObjectHandle *SVObjectHandle_a1, register __a2 struct Window *window, register __a3 ULONG future)
  25. {
  26.  struct SVObjectHandle *SVObjectHandle = SVObjectHandle_a1;
  27.  
  28.  ULONG retval = SVERR_NO_ERROR;
  29.  char hbuf[80], buffer [1024];
  30.  ULONG idcmp = N, noinfo = TRUE;
  31.  struct EasyStruct *estr;
  32.  struct Window     *disp_win = window;
  33.  
  34.  if(!SVObjectHandle) return(SVERR_NO_HANDLE);
  35.  
  36.  buffer[0] = (char) 0;
  37.  
  38.  if(SVObjectHandle->ah_SV_GfxBuffer)
  39.   {
  40.    noinfo = FALSE;
  41.  
  42.    strcat(buffer,   "\n File Information"
  43.                   "\n\n UtahRLE");
  44.  
  45.    strcat(buffer, " (Raytracer)");
  46.  
  47.    strcat(buffer, "\n");
  48.  
  49.    sprintf(hbuf, "\n GfxWidth       : %ld", (long) SVObjectHandle->ah_SV_GfxBuffer->svgfx_Width);
  50.    strcat(buffer, hbuf);
  51.  
  52.    sprintf(hbuf, "\n GfxHeight      : %ld", (long) SVObjectHandle->ah_SV_GfxBuffer->svgfx_Height);
  53.    strcat(buffer, hbuf);
  54.  
  55.    sprintf(hbuf, "\n Colordepth     : 24");
  56.    strcat(buffer, hbuf);
  57.  
  58.    sprintf(hbuf, "\n => # of Colors : %ld", (long) ColorAcc(24));
  59.    strcat(buffer, hbuf);
  60.  
  61.    strcat(buffer, "\n");
  62.  
  63.   }else retval = SVERR_NO_HANDLE;
  64.  
  65.  if(!retval)
  66.   {
  67.    if(noinfo)
  68.     {
  69.      strcat(buffer,   "\n File Information"
  70.                     "\n\n No information available\n");
  71.     }
  72.  
  73.    estr = AllocVec(sizeof(struct EasyStruct), MEMF_CLEAR);
  74.    if(estr)
  75.     {
  76.      estr->es_StructSize   = sizeof(struct EasyStruct);
  77.      estr->es_Flags        = N;
  78.      estr->es_Title        = "SuperView InfoRequester";
  79.      estr->es_TextFormat   = buffer;
  80.      estr->es_GadgetFormat = "Confirm";
  81.  
  82.      if(!disp_win) disp_win = SVObjectHandle->ah_Window;
  83.  
  84.      EasyRequestArgs(disp_win, estr, &idcmp, N);
  85.      FreeVec(estr);
  86.     }
  87.   }
  88.  
  89.  return(retval);
  90. }
  91.  
  92. /* *************************************************** */
  93. /* *                             * */
  94. /* * SVLI_CheckFileType : ...                    * */
  95. /* *                             * */
  96. /* *************************************************** */
  97.  
  98. ULONG __saveds __asm SVO_CheckFileType(register __a1 BPTR handle, register __a2 UBYTE *filename, register __a3 APTR future)
  99. {
  100.  UWORD id;
  101.  
  102.  if(!handle) return(FALSE);
  103.  
  104.  Seek(handle, N, OFFSET_BEGINNING);
  105.  Read(handle, &id, 2);
  106.  
  107.  if(id == RLE_ID) return(TRUE);
  108.  
  109.  return(FALSE);
  110. }
  111.  
  112. extern void Fmt(void); /* Assembler-Routine for RawDoFmt */
  113.  
  114. void __saveds __stdargs SVLI_SPrintf(APTR buffer, char *formatstring, ...)
  115. {
  116.  RawDoFmt((APTR) formatstring, (APTR) (((ULONG *)&formatstring)+1), (APTR) &Fmt, (APTR) buffer);
  117. }
  118.